package controle;

import javax.swing.JOptionPane;

public class CalcHora {

    Integer totalMinIni, totalMinFim, diferencaMin,
            horaretorno, minretorno, hora_ini, min_ini,
            hora_fim, min_fim, horas, minutos;
    String hora_string, min_string, duracao;

    public String diferenca(String HoraInic, String HoraFim) {

        hora_ini = Integer.parseInt(HoraInic.substring(0, 2));
        min_ini = Integer.parseInt(HoraInic.substring(3, 5));

        hora_fim = Integer.parseInt(HoraFim.substring(0, 2));
        min_fim = Integer.parseInt(HoraFim.substring(3, 5));

        totalMinIni = (hora_ini * 60) + min_ini;
        totalMinFim = (hora_fim * 60) + min_fim;
        diferencaMin = totalMinFim - totalMinIni;
        horaretorno = diferencaMin / 60;
        minretorno = diferencaMin % 60;
        hora_string = "" + horaretorno + ":";
        min_string = "" + minretorno;

        if (horaretorno < 10) {
            hora_string = "0" + horaretorno + ":";
        }
        if (minretorno < 10) {
            min_string = "0" + minretorno;
        }

        if (diferencaMin >= 0) {
            duracao = hora_string + min_string;
        } else if (diferencaMin < 0) {
            duracao = "erro";
        }

        return duracao;
    }

    public int diferencaMinutos(String HoraInic, String HoraFim) {

        hora_ini = Integer.parseInt(HoraInic.substring(0, 2));
        min_ini = Integer.parseInt(HoraInic.substring(3, 5));

        hora_fim = Integer.parseInt(HoraFim.substring(0, 2));
        min_fim = Integer.parseInt(HoraFim.substring(3, 5));

        totalMinIni = (hora_ini * 60) + min_ini;
        totalMinFim = (hora_fim * 60) + min_fim;
        diferencaMin = totalMinFim - totalMinIni;

        return diferencaMin;
    }

    public String minParaHoraExtra(int minutos_prm) {

        boolean b = false;

        if (minutos_prm < 0) {
            String min = String.valueOf(minutos_prm);
            min = min.replace("-", "");
            minutos_prm = Integer.parseInt(min);
            b = true;
        }

        horas = minutos_prm / 60;
        minutos = minutos_prm % 60;

        hora_string = "" + horas + ":";
        min_string = "" + minutos;

        if (horas < 10) {
            hora_string = "0" + horas + ":";
        }
        if (minutos < 10) {
            min_string = "0" + minutos;
        }

        duracao = hora_string + min_string;

        if (b) {
            duracao = duracao + "(-)";
        } else {
            duracao = duracao + "(+)";
        }

        return duracao;
    }

    public String minParaHora(int minutos_prm) {

        boolean b = false;

        if (minutos_prm < 0) {
            String min = String.valueOf(minutos_prm);
            min = min.replace("-", "");
            minutos_prm = Integer.parseInt(min);
            b = true;
        }

        horas = minutos_prm / 60;
        minutos = minutos_prm % 60;

        hora_string = "" + horas + ":";
        min_string = "" + minutos;

        if (horas < 10) {
            hora_string = "0" + horas + ":";
        }
        if (minutos < 10) {
            min_string = "0" + minutos;
        }

        duracao = hora_string + min_string;

        if (b) {
            duracao = "-" + duracao;
        }

        return duracao;
    }

    public static void main(String args[]) {

        JOptionPane.showMessageDialog(null, new CalcHora().minParaHora(-119));

    }
}
